package com.leigq.www.mybatisplusstudy.web.config.mvc;

import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


/**
 * MVC配置
 * <pre>
 *     有两种方式配置，推荐使用 "实现 WebMvcConfigurer 接口 " 实现, 参考： https://blog.csdn.net/cp026la/article/details/86518655
 *     <code>@SpringBootConfiguration</code>继承自 <code>@Configuration</code>，二者功能也一致，标注当前类是配置类，
 *     并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中，并且实例名就是方法名。
 *     <code>@EnableWebMvc</code> 启用此注解，SpringBoot 关于 MVC 的自动装载会失效，交由开发者自定义
 * </pre>
 * @author leiguoqing
 */
@Configuration
public class MvcConfig implements WebMvcConfigurer {

    /**
     * Add formatters.
     *
     * @param registry the registry
     */
    @Override
    public void addFormatters(FormatterRegistry registry) {
        // 前端传 String 类型，后端自动转为枚举，需要转换的枚举实现 com.baomidou.mybatisplus.annotation.IEnum 接口 或者 在需要转换的属性上加 @com.baomidou.mybatisplus.annotation.EnumValue 注解
        registry.addConverterFactory(new StringToEnumConverterFactory());
    }

}
